'use strict';
window.list = (function () {
    //删除tab标签
    function closeTab() {
        var navTabs = $('#nav-tabs');
        navTabs.on('click', '.close-tab', function () {
            var prevTabIndex = Number(localStorage.getItem('prevTabIndex'));
            if ($(this).closest('li').hasClass('active')) {
                if (navTabs.find('li').eq(prevTabIndex).hasClass('hidden')) {
                    navTabs.find('a').eq(0).trigger('click');
                } else {
                    navTabs.find('a').eq(prevTabIndex).trigger('click');
                }
            }
            $(this).closest('li').addClass('hidden');
        })
    }

    //新建输入框
    function addInput() {
        var $btn = $('#formFile select');
        $btn.on('change', function () {
            var $val = $(this).find('option:selected').val();
            if ($val === '新建') {
                $(this).after('<input type="text" placeholder="请输入附件名" class="form-control">');
            }else if($val === '新建附件名称'){
                console.log(234567);
                var $item ='<li class="selectWrap pad-top-10"><input type="text" class="form-control"><label><input type="file"></label><a href="javascript:;" class="delFile">×</a></li>';
                $('.btnWrap').closest('li').before($item);
                return false;
            }
            return false;
        });
    }

    var $firstLiNew = $('#formFile li').eq(0);
    //添加附件
    function addFile() {
        var $btn = $('#addFile');

        $btn.on('click', function () {
            var $item = $firstLiNew.clone(true);
            $(this).closest('li').before($item)
                .prev().find('input[type="text"]').remove();
            $(this).closest('.btnWrap').prev().find('.delFile').removeClass('hidden');
            $(this).closest('.btnWrap').prev().find('input').val('');
            return false;
        });
    }

    //添加附件
    function addFile5() {
        var $btn = $('#addFile5');

        $btn.on('click', function () {
            var $item = $firstLiNew.clone(true);
            $(this).closest('li').before($item)
                .prev().find('input[type="text"]').addClass("hidden");
            $(this).closest('.btnWrap').prev().find('.delFile').removeClass('hidden');
            $(this).closest('.btnWrap').prev().find('input').val('');
            return false;
        });
    }

    function fileSelect() {

        $(".formFile select").change(function() {
            var _value = $(this).val();
            if (_value === '5') {
                $(this).closest("li").find("input[name='fileTypeName']").attr("type", "text").removeClass("hidden");
            } else {
                $(this).closest("li").find("input[name='fileTypeName']").attr("type", "hidden");
            }
        });
    }

    function addFile4() {
        var $btn = $('.addFile');
        $btn.on('click', function () {
            var $firstLi = $(this).closest('#formFile').find('li').eq(0);
            var $item = $firstLi.clone(true);
            $(this).closest('li').before($item)
                .prev().find('input[type="text"]').remove();
            $(this).closest('.btnWrap').prev().find('.delFile').removeClass('hidden');
            $(this).closest('.btnWrap').prev().find('input').val('');
            return false;
        });
    }

    function addFile1() {
        var $btn = $('#addFile1');
        var $firstLi = $('#formFile').find('.fileItem');
        $btn.on('click', function () {
            var $item = $firstLi.clone(true);
            $(this).closest('.btnWrap').before($item)
                .prev().find('.delFile').removeClass('hidden');
            $(this).closest('.btnWrap').prev().find('input').val('');
            return false;
        });
    }

    function addFile2() {
        var $btn = $('#addFile2');
        $btn.on('click', function () {
            var $item = $('<li class="pad-top-10 selectWrap"><input type="file" name="file"><a href="javascript:;" class="delFile ">×</a></li>');
            $(this).closest('li').before($item);
            $(this).closest('.btnWrap').prev().find('input').val('');
            return false;
        });
    }

    //删除附件
    function delFile() {
        $(document).on('click', '.delFile', function () {
            $(this).closest('.selectWrap').remove();
        })
    }

    //记录prevTabIndex
    function keepPrevTabIndex() {
        var $navTabs = $('#nav-tabs');
        $(document).find('#nav-tabs').on('click', 'a', function () {
            if (!$(this).closest('li').hasClass('active')) {
                var prevTabIndex = $navTabs.find('.active').index();
                localStorage.setItem('prevTabIndex', prevTabIndex);
            }
        });
    }

    //添加客户详情
    function addClientDetail() {
        var $navTabs = $('#nav-tabs');
        var $tabLinkDetail;
        $(document).on('click', '.add-tab', function () {
            var prevTabIndex = $navTabs.find('.active').index();
            if ($(this).hasClass('add-contract')) {
                prevTabIndex = $(window.parent.document).find('#nav-tabs').find('.active').index() - 1;
            }
            localStorage.setItem('prevTabIndex', prevTabIndex);
            var $title = $(this).attr('data-name') || $('#addTabTitle').val();
            if ($(this).hasClass('add-iframe')) {
                $tabLinkDetail = $('<li class="active"><a href="#" href="javascript:;" data-toggle="tab" data-href="' + $(this).attr('newHref') + '">' + $(this).attr('data-name') + '&emsp;</a><span class="close-tab">&times;</span></li>');
            } else {
                $tabLinkDetail = $('<li class="active"><a href="#detail" href="javascript:;" data-toggle="tab">' + $title + '&emsp;</a><span class="close-tab">&times;</span></li>');
            }
            $navTabs.find('li').removeClass('active');
            $navTabs.append($tabLinkDetail);
            $('#home').removeClass('in active');
            $('#detail').addClass('in active')
        });
    }

    //关闭Modal
    function closeModal() {
        var btnClose = $('.btn-modal-close');
        btnClose.on('click', function () {
            var modalId = $(this).closest('.modal').attr('id');
            var selectTitle = $('.curSelectedNode').attr('title');
            if (modalId === 'modal-company') {
                $('#inputCompany').val(selectTitle);
            } else if (modalId === 'modal-office') {
                $('#inputOffice').val(selectTitle);
            }
            $('.modal').modal('hide');
        });
    }

    function winSizeHeight() {
        var $iframe2 = $('#iframe2');
        $iframe2.css('height', $(window).height() - 40);
        $(window).resize(function () {
            $iframe2.css('height', $(window).height() - 40);
        });
    }

    //增加iframe
    function addIframe() {
        var $navTabs = $('#nav-tabs'),
            $iframe2 = $('#iframe2');
        $('.add-iframe').on('click', function () {
            $('#tab-content').addClass('hide');
            $iframe2.attr('src', $(this).attr('newHref')).removeClass('hide');
        });
        $navTabs.on('click', 'a', function () {
            if ($(this).attr('data-href')) {
                $('#tab-content').addClass('hide');
                $iframe2.attr('src', $(this).attr('data-href')).removeClass('hide');
            } else {
                $('#tab-content').removeClass('hide');
                $iframe2.attr('src', '').addClass('hide');
            }
        });
    }

    //自定义下拉框
    function customDropdown() {
        var $customMenu = $('#custom-menu'),
            tableWrap = $('.table-wrap');
        var tableHeight = tableWrap.find('.table').height(),
            tableWrapWidth = tableWrap.width(),
            tableWidth = tableWrap.find('.table').width();
        $('#custom-dropdown').click(function () {
            $customMenu.toggle();
            if (tableHeight < (226 + 30)) {
                if (tableWidth > tableWrapWidth) {
                    tableWrap.toggleClass('active');
                } else {
                    tableWrap.css('overflow', 'initial');
                }
            }
        });
        $customMenu.find('.btn').on('click', function () {
            $customMenu.hide();
            if ((tableWidth > tableWrapWidth) && tableHeight < (226 + 30)) {
                tableWrap.removeClass('active');
            }
        });
    }

    //自定义列表
    function checkMenu() {
        var parent = $('#custom-menu'),
            btn = parent.find('.btn-primary');
        btn.on('click', function () {
            var table = $(this).closest('.table'),
                arrTh = table.find('thead').find('th'),
                arrTr = table.find('tbody').find('tr'),
                arrInput = parent.find('input');
            arrTh.removeClass('hidden');
            arrTr.find('td').removeClass('hidden');
            for (var i = 0; i < arrInput.length; i++) {
                if (arrInput[i].checked === false) {
                    var selectText = arrInput.eq(i).closest('label').text().trim();
                    arrTh.each(function (index, ele) {
                        if (index) {
                            if ($(this).text().trim() === selectText) {
                                arrTr.each(function (i, ele) {
                                    arrTh.eq(index).addClass('hidden');
                                    $(this).find('td').eq(index - 1).addClass('hidden');
                                });
                            }
                        }
                    })
                }
            }
        });
    }

    //用户进度
    function userProcess2() {
        var $btnPrev = $('.btn-prev'),
            $btnNext = $('.btn-next'),
            $index = 0,
            $dlForm = $('#dl_form').find('dd'),
            $stepsWrap = $('.sui-steps .wrap');
        $btnNext.click(function () {
            $index = $(this).closest('.btns-tab').index();
            $(this).closest('.btns-tab').addClass('hidden').next('.btns-tab').removeClass('hidden');
            $dlForm.eq($index).removeClass('hidden').siblings('dd').addClass('hidden');
            $stepsWrap.eq($index).find('div').addClass('current').removeClass('todo')
                .end().prev().find('div').addClass('finished').removeClass('current')
                .find('.round').html('<span class="glyphicon glyphicon-ok"></span>');
        });
        $btnPrev.click(function () {
            $index = $(this).closest('.btns-tab').index();
            $(this).closest('.btns-tab').addClass('hidden').prev('.btns-tab').removeClass('hidden');
            $dlForm.eq($index - 2).removeClass('hidden').siblings('dd').addClass('hidden');
            $stepsWrap.eq($index - 2).find('div').addClass('current').removeClass('finished')
                .find('.round').html($index - 1)
                .end().end().next().find('div').addClass('todo').removeClass('current');
        });
    }

    function steps(num) {
        $(document).find('.btns-tab').eq(num - 1).addClass('hidden');
        $(document).find('.btns-tab').eq(num).removeClass('hidden');
        $('#dl_form').find('dd').eq(num).removeClass('hidden').siblings('dd').addClass('hidden');
        $('.sui-steps .wrap').eq(num).find('div').addClass('current').removeClass('todo')
            .end().prev().find('div').addClass('finished').removeClass('current')
            .find('.round').html('<span class="glyphicon glyphicon-ok"></span>');
    }

    function userProcess(form) {
        var $btnPrev = $('.btn-prev'),
            $btnNext = $('.btn-next'),
            $index = 0,
            $dlForm = $('#dl_form').find('dd'),
            $stepsWrap = $('.sui-steps .wrap');

        $(form).validate({
            errorPlacement: function (error, element) {
                // Append error within linked label
                $(element)
                    .closest('div[class*=col-]')
                    //.find( "label[for='" + element.attr( "id" ) + "']" )
                    .append(error);
            },
            onfocusout: function (element) {
                $(element).valid();
            },
            submitHandler: function () {
                steps($index);
            }
            //debug:true
        });

        $btnNext.click(function () {
            $index = $(this).closest('.btns-tab').index();
            $(form).submit();
        });
        $btnPrev.click(function () {
            $index = $(this).closest('.btns-tab').index();
            $(this).closest('.btns-tab').addClass('hidden').prev('.btns-tab').removeClass('hidden');
            $dlForm.eq($index - 2).removeClass('hidden').siblings('dd').addClass('hidden');
            $stepsWrap.eq($index - 2).find('div').addClass('current').removeClass('finished')
                .find('.round').html($index - 1)
                .end().end().next().find('div').addClass('todo').removeClass('current');
        });
    }

    //提交成功
    function submitSuccess() {
        var $btnSubmit = $('#btnSubmit'),
            $text = $('#successText');
        $btnSubmit.on('click', function () {
            $text.fadeIn(function () {
                // window.location.href="http://www.baidu.com";
            });
        });
    }

    //新添加标签
    /*function addNewTab() {
        $(document).on('click', '.add-newTab', function () {
            var $navTabs = $(window.parent.document).find('.nav-tabs'),
                prevTabIndex = $navTabs.find('.active').index();
            var newTab = $('<li class="active"><a href="#" href="javascript:;" data-toggle="tab" data-href="' + $(this).attr('href') + '">' + $(this).attr('data-title') + '&emsp;</a><span class="close-tab">&times;</span></li>');
            $navTabs.find('li').removeClass('active')
                .end().append(newTab);
            localStorage.setItem('prevTabIndex', prevTabIndex);
        })
    }*/
    function addNewTab() {
        $(document).on('click', '.add-newTab', function (event) {
            var $navTabs = $(window.parent.document).find('.nav-tabs'),
                prevTabIndex = $navTabs.find('.active').index();
            var newTab = $('<li class="active"><a href="#" href="javascript:;" data-toggle="tab" data-href="' + $(this).attr('href') + '">' + $(this).attr('data-title') + '&emsp;</a><span class="close-tab">&times;</span></li>');
            $navTabs.find('li').removeClass('active')
                .end().append(newTab);
            $(window.parent.document).find('#iframe2').attr('src', $(this).attr('href'));
            localStorage.setItem('prevTabIndex', prevTabIndex);
            event.preventDefault();

        })
    }
    //表单提交成功
    function submitTipSuccess() {
        $('.btn-tip-success').on('click',function () {
            var $navTabs = $(window.parent.document).find('.nav-tabs'),
                prevTabIndex = $navTabs.find('.active').index();
            localStorage.setItem('prevTabIndex', prevTabIndex);
            $navTabs.find('li').eq(0).addClass('active').siblings().removeClass('active');
        });
    }
    //婚姻状况
    function maritalStatus() {
        var $title=$('#maritalTitle').find('label'),
            $content=$('#maritalContent');
        $title.on('click',function () {
            var text=$(this).text().trim();
            if(text==='已婚'){
                $content.removeClass('hidden');
            }else{
                $content.addClass('hidden');
            }
        })
    }
    //审核意见
    function examineStatus() {
        var $title=$('#examineTitle').find('label'),
            $content=$('#examineContent');
        $title.on('click',function () {
            var text=$(this).text().trim();
            if(text==='通过'){
                $content.removeClass('hidden');
            }else{
                $content.addClass('hidden');
            }
        })
    }
    function start() {
        winSizeHeight();
        //删除tab标签
        closeTab();
        //新建输入框
        addInput();
        //添加附件
        addFile();
        addFile1();
        addFile2();
        addFile5();
        fileSelect();

        //删除附件
        delFile();
        //添加客户详情
        addClientDetail();
        //自定义下拉框
        customDropdown();
        //自定义列表
        checkMenu();
        //用户进度
        //userProcess();
        //提交成功
        submitSuccess();
        //关闭Modal
        closeModal();
        //增加iframe
        addIframe();
        //记录prevTabIndex
        keepPrevTabIndex();
        //新添加标签
        addNewTab();
        //表单提交成功
         submitTipSuccess();
        //婚姻状况
         maritalStatus();
        //审核意见
         examineStatus();
    }

    return {
        start: start,
        userProcess: userProcess,
        userProcess2: userProcess2,
        addFile4: addFile4
    }

}());
window.list.start();
window.list.userProcess('#myForm');
// window.list.userProcess2();